package notCompany;

import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;


/**
 * Boss一键直聘屏蔽公司
 * 创建者 令狐冲
 * 原文【使用教程】链接：https://blog.csdn.net/weixin_39456973/article/details/128362651
 */
public class Boss {
    /**
     * 需要屏蔽的公司名称
     **/
    static final String[] QUERY_NAMES = (
            "中软国际,东软集团,博彦科技,博朗软件,中电金信,文思海辉,法本信息,奥博杰天,浪潮,软通动力,福瑞博德"
                    + ",信必优,大展科技,恒生电子,日电卓越软件,大连华信,中和软件,新致软件,艾斯克雷,海隆软件,大宇宙信息,晟峰软件"
                    + ",富士通信息,NTTDATA,宏智科技,神州信息,凌志软件,音泰思,微创软件,佰钧成,瑞友科技,云测,京北方,宇信科技,中科软,汉克时代"
                    + ",赢时胜,纬创软件,联想利泰,海通安恒,德科信息,云腾未来,网新新思,讯方技术,易诚互动,易联达,润和软件,柯莱特,艾融,易立德,新致软件"
                    + ",科蓝软件,亚信科技,浩鲸科技,德科信息,易宝软件,赛意信息,安硕信息,南天信息,江苏红网,时代银通,领雁科技,汉得信息,四方精创,川准达信息"
                    + ",慧博云通,华路时代,广联达,鼎捷软件,天阳科技,亿达信息,信雅达,长亮科技,全速创想,金桥信息,乌鸫科技,久远银海"
    ).split(",");

    /**
     * COOKIE，ZP_TOKEN 登录信息，浏览器f12控制台中获取
     **/
    static final String COOKIE = "";
    static final String ZP_TOKEN = "";

    public static void main(String[] args) {
        for (String query : QUERY_NAMES) {
            // 对查询参数进行URL编码
            String encodedQuery = URLUtil.encode(query);

            // 1、查询操作
            String jsonStr = HttpRequest.get("https://www.zhipin.com/wapi/zpgeek/maskcompany/suggest.json?query=" + encodedQuery)
                    .header("cookie", COOKIE).execute().body();
            if (StrUtil.isNotBlank(jsonStr)) {
                JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
                if ("Success".equals(jsonObject.get("message"))) {
                    JSONObject zpDataJson = jsonObject.getJSONObject("zpData");
                    JSONArray suggestListJson = zpDataJson.getJSONArray("suggestList");

                    // 2、屏蔽操作
                    int checkall = 1;
                    int totalCount = zpDataJson.getInt("totalCount");
                    // 对公司名称进行URL编码
                    String encodedName = URLUtil.encode(query);
                    StringBuilder comIds = new StringBuilder();
                    for (Object i : suggestListJson) {
                        JSONObject suggestJson = JSONUtil.parseObj(i);
                        comIds.append(",").append(suggestJson.getStr("encryptComId"));
                    }

                    // 构建带编码参数的URL
                    String baseUrl = "https://www.zhipin.com/wapi/zpgeek/maskcompany/add.json";
                    String url = baseUrl +
                            "?checkall=" + checkall +
                            "&totalCount=" + totalCount +
                            "&name=" + encodedName +
                            "&comIds=" + comIds;

                    String result1 = HttpRequest.get(url)
                            .header("cookie", COOKIE)
                            .header("zp_token", ZP_TOKEN)
                            .execute().body();
                    System.out.println("公司名称:" + query + "，屏蔽结果：" + result1);
                }
            }
        }

    }
}
